package jvmTest;

import java.util.HashSet;
import java.util.Set;

/**
 * @Author G_Y
 * @Date 2021/2/22 9:10
 * @Description: // TODO
 **/
public class RuntimeConstantPoolOOM {
    //在JDK 6或更早之前的HotSpot虚拟机中，常量池都是分配
    //在永久代中，我们可以通过-XX：PermSize和-XX：MaxPermSize限制永久代的大小，即可间接限制其
    //中常量池的容量
    public static void main(String[] args) {
        // 使用Set保持着常量池引用，避免Full GC回收常量池行为
        Set<String> set = new HashSet<String>();
        // 在short范围内足以让6MB的PermSize产生OOM了
        short i = 0;
        while (true) {
            set.add(String.valueOf(i++).intern());
        }
    }
}
